package org.linlinjava.litemall.wx.vo;

import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.apache.ibatis.type.IntegerTypeHandler;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel("我的优惠券")
public class WxMyCouponsVO implements Serializable {


    @ApiModelProperty("优惠券ID")
    private Long couponId;
    /**
     * 优惠券名称
     */
    @ApiModelProperty("优惠券名称")
    private String couponName;

    @ApiModelProperty("优惠券类型")
    private Integer couponType;

    @ApiModelProperty("优惠券图片")
    private String pictureUrl;
    /**
     * 优惠券描述
     */
    @ApiModelProperty("优惠券介绍，通常是显示优惠券使用限制文字")
    private String descr;

    @ApiModelProperty("优惠券开始时间")
    private LocalDateTime startTime;

    @ApiModelProperty("优惠券到期时间")
    private LocalDateTime endTime;
    @ApiModelProperty("优惠券使用范围｜使用范围：0通用 1APP 2POS 3网站")
    private String ranges;

    @ApiModelProperty("折扣类型(1:满减;2:百分比)")
    private Integer discountType;
    @ApiModelProperty("折扣类型(百分比)")
    private BigDecimal discountRate;

    @ApiModelProperty("折扣类型(满减金额)")
    private BigDecimal discount;

    @ApiModelProperty("最少消费金额才能使用优惠券")
    private BigDecimal min;

    @ApiModelProperty("使用限制 | 年月日 限制 0 每年、 1 每月、2每周、3每天、4不限")
    private Integer useLimit;
    @ApiModelProperty("限制数量,该字段和use_limit相关")
    private Integer useLimitNum;

    /**
     * 策略的使用说明
     */
    @ApiModelProperty("策略的使用说明")
    private String useInstruction;

    /**
     * 优惠券码
     */
    @ApiModelProperty("优惠券码")
    private String code;

    /**
     * 优惠券领取时间
     */
    @ApiModelProperty("优惠券领取时间")
    private LocalDateTime addTime;

    @ApiModelProperty("商品限制类型")
    private Integer goodsType;

    @ApiModelProperty("类目限制")
    private String[] goodsValue;

    @ApiModelProperty("商品限制")
    private String[] selectGoods;

    @ApiModelProperty("地区限制类型")
    private Integer areaLimit;

    @ApiModelProperty("区域限制")
    private String[] regions;

    @ApiModelProperty("分组数量")
    private Integer number;

}
